const webpack = require("webpack");
const devServer = require("./config/devServer.js"); // 代理配置
const V5PcPlugin = require("./config/plugin/V5PcPlugin.js"); // 此处引用了各个功能的webpack插件，来实现统一的功能配置。
// const UglifyJsPlugin = require("uglifyjs-webpack-plugin");

let vueConfig = {
  // eslint关闭
  lintOnSave: false,

  publicPath: "./",
  transpileDependencies: [
    "./src", "element-ui",
    'sm-crypto',
    'bpmn-js',
    'bpmn-js-properties-panel',
    'diagram-js',
    'bpmn-moddle',
    '@bpmn-io',
    '@bpmn-io/element-templates-validator'
],

  configureWebpack: {
    plugins: [
      new V5PcPlugin(),
      new webpack.ProvidePlugin({
        "window.Quill": "quill/dist/quill.js",
        Quill: "quill/dist/quill.js",
      }),
    ],
    // 开启分离js
    // optimization: {
    //   runtimeChunk: "single",
    //   splitChunks: {
    //     chunks: "all",
    //     maxInitialRequests: Infinity,
    //     minSize: 20000,
    //     cacheGroups: {
    //       vendor: {
    //         test: /[\\/]node_modules[\\/]/,
    //         name(module) {
    //           // get the name. E.g. node_modules/packageName/not/this/part.js
    //           // or node_modules/packageName
    //           const packageName = module.context.match(
    //             /[\\/]node_modules[\\/](.*?)([\\/]|$)/
    //           )[1];
    //           // npm package names are URL-safe, but some servers don't like @ symbols
    //           return `npm.${packageName.replace("@", "")}`;
    //         },
    //       },
    //     }, 
    //   },
    // },
    // 去除打包后的 console\debugger
    // optimization: {
    //   minimizer: [
    //     new UglifyJsPlugin({
    //       uglifyOptions: {
    //         // 删除注释
    //         output: {
    //           comments: false,
    //         },
    //         // 删除console debugger 删除警告
    //         compress: {
    //           warnings: false,
    //           drop_console: true, //console
    //           drop_debugger: false,
    //           pure_funcs: ["console.log"], //移除console
    //         },
    //       },
    //     }),
    //   ],
    // },
  },
  // 打包时不生成.map文件
  productionSourceMap: true,
  devServer: devServer,

  //pages: outputPage,
};

module.exports = vueConfig;
